package com.brillilab.service.core.lab;

import com.brillilab.domain.po.lab.Lab;

import java.util.List;

/**
 * 实验室Service
 *
 * @author lj
 */
public interface ILabService {

    Lab insert(Lab lab);

    boolean updateById(Lab lab);

    boolean updateState(Long id, Integer state);

    Lab selectById(Long id);

    Lab selectByOwnerId(Long ownerId);

    List<Lab> selectList(Long orgId);

    List<Lab> selectListByIdList(List<Long> labIdList);

    /**
     * 根据参数检索实验室信息
     *
     * @param labName 实验室名称
     * @param orgId   一级机构ID
     * @param academy 二级机构名称
     * @return
     */
    Lab selectByLabNameAndOrgInfo(String labName, Long orgId, String academy);

    /**
     * 根据参数检索实验室信息
     *
     * @param labName 实验室名称
     * @param orgName 一级机构名称
     * @param academy 二级机构名称
     * @return
     */
    Lab selectByLabNameAndOrgName(String labName, String orgName, String academy);

    /**
     * 试用实验室过期定时任务
     * @param lab
     * @return
     */
    boolean createLabExpireJobs(Lab lab);

    List<Lab> selectAllLabList();
}
